///PHILOTES Source Code.  (C)2012 PhiloLabs
#pragma once

#include "ExtrasPrerequisites.h "

#include "OgrePrerequisites.h"
#include "OgreStringInterface.h"

namespace Extras  {


    namespace OverlayElementCommands {
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdLeft : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdTop : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdWidth : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdHeight : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdMaterial : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdCaption : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdMetricsMode : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdHorizontalAlign : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdVerticalAlign : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };
        /// Command object for OverlayElement  - see ParamCommand 
        class _PhiloExtrasExport CmdVisible : public ParamCommand
        {
        public:
            Ogre::String doGet(const void* target) const;
            void doSet(void* target, const Ogre::String& val);
        };

    }
	
	
}

